<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组操作</title>
    <script>
        let arr = [
            {id: 1, name: '张三', age: 20},
            {id: 2, name: '李四', age: 19},
            {id: 3, name: '王五', age: 21},
            {id: 4, name: '小六', age: 16}
        ]
        // 数组中所有的人都成年了吗
        // 1.findIndex()，找到有一个小于18岁的，上面结果就是false
        let index = arr.findIndex(item => item.age < 18) // 是否为-1
        console.log(index < 0 ? '全部都成年了' : '没有全部成年')

        // 2.every()
        // 全部符合回调函数的条件，结果为true
        // 只要有一项不符合条件，结果是false
        console.log(arr.every(item => item.age >= 18))

        // 3.some()，思路和find相同

        // 数组过滤filter
        // 获取所有大于等于18岁的人装入新的数组
        // 删除未成年人
        // filter函数不会改变原数组，结果需要用新变量接收
        let new_arr = arr.filter(item => item.age >= 18)
        console.log(...new_arr)

        // 获取所有数组元素的名字，装入新数组
        let name_arr = arr.map(item => item.name)
        console.log(...name_arr)
    </script>
</head>
<body>
    
</body>
</html>